package com.gitee.mrj.aiboot.annotation.config.sf.ui.widget;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
public @interface SFTimeWidget {

    // SFDLSSize size() default SFDLSSize.DEFAULT;

    /**
     * 在文字框中显示提示讯息
     */
    String placeholder() default "";


    /**
     * **Just only support date-fns**
     * <p>
     * Return the formatted date string in the given format, [Accepted tokens](https://date-fns.org/v2.12.0/docs/format), like this:
     * - `yyyy-MM-dd HH:mm:ss` Date time
     * - `t` Seconds timestamp
     * - `T` Milliseconds timestamp
     */
    String format() default "";

    /**
     * To set the date format (equar [nzFormat](https://ng.ant.design/components/date-picker/zh#api))
     * <p>
     * **TIPS** [nzFormat special instructions](https://ng.ant.design/components/date-picker/en#api)
     */
    String displayFormat() default "";

    /**
     * 是否UTC新纪元（表示从 `1970` 开始计毫秒数），当 `type='number'` 时有效，默认：`false`
     */
    boolean utcEpoch() default false;

    /**
     * Allow clearing text, default: `true`
     */
    boolean allowEmpty() default true;

    /**
     * Clear tooltip of icon, default: `清除`
     */
    String clearText() default "";

    /**
     * Default open panel value, default: `new Date()`
     */
//    defaultOpenValue?: Date;


    /**
     * Hide the options that can not be selected, default: `false`
     */
    boolean hideDisabledOptions() default false;

    /**
     * Display as 12 hours format, with default format, default: `h:mm:ss a`
     */
    boolean use12Hours() default false;

    /**
     * Interval between hours in picker, default: `1`
     */
    int hourStep() default Integer.MIN_VALUE;

    /**
     * Interval between minutes in picker, default: `1`
     */
    int minuteStep() default Integer.MIN_VALUE;

    /**
     * Interval between seconds in picker, default: `1`
     */
    int secondStep() default Integer.MIN_VALUE;

    /**
     * ClassName of panel
     */
    String popupClassName() default "";

    /**
     * text of the Now button
     * <p>
     * 此刻按钮文本
     */
    String nowText() default "";

    /**
     * text of the Ok button
     * <p>
     * 确认按钮文本
     */
    String okText() default "";
}
